/**
 * Orthanc DICOM-Web 配置
 */
export interface OrthancConfig {
  baseUrl: string
  dicomWebPath: string
  timeout: number
  headers: Record<string, string>
  auth?: {
    username: string
    password: string
  }
}

// 根据环境选择基础URL
const getBaseUrl = (): string => {
  // 在开发环境下使用代理路径避免CORS问题
  if (import.meta.env.DEV) {
    return '/api/orthanc'
  }
  // 生产环境直接使用Orthanc服务器地址（通过Nginx）
  return 'http://106.14.195.137/orthanc'
}

export const orthancConfig: OrthancConfig = {
  // Orthanc 服务器基础地址
  baseUrl: getBaseUrl(),
  
  // DICOM-Web 插件路径
  dicomWebPath: '/dicom-web',
  
  // 请求超时时间（毫秒）
  timeout: 30000,
  
  // 默认请求头
  headers: {
    'Content-Type': 'application/json',
    'Accept': 'application/json, image/jpeg, image/png, */*'
  },
  
  // 认证信息（如果Orthanc启用了认证）
  // 当前服务器已禁用认证，所以注释掉
  // auth: {
  //   username: 'orthanc',
  //   password: 'orthanc'
  // }
}

/**
 * 构建完整的 DICOM-Web URL
 */
export const buildDicomWebUrl = (endpoint: string): string => {
  const { baseUrl, dicomWebPath } = orthancConfig
  return `${baseUrl}${dicomWebPath}${endpoint}`
}

/**
 * DICOM 实例路径构建器
 */
export interface DicomInstancePath {
  studyInstanceUID: string
  seriesInstanceUID: string
  sopInstanceUID: string
  frameNumber?: number
}

export const buildInstanceUrl = (path: DicomInstancePath): string => {
  const { studyInstanceUID, seriesInstanceUID, sopInstanceUID, frameNumber } = path
  
  let url = `/studies/${studyInstanceUID}/series/${seriesInstanceUID}/instances/${sopInstanceUID}`
  
  if (frameNumber !== undefined) {
    url += `/frames/${frameNumber}`
  }
  
  return buildDicomWebUrl(url)
}

/**
 * 示例 DICOM 实例配置（基于你提供的URL）
 */
export const exampleDicomInstance: DicomInstancePath = {
  studyInstanceUID: '1.2.86.76547135.7.202502051034210721.5746',
  seriesInstanceUID: '1.3.12.2.1107.5.1.4.73336.30000025012306181112800408853',
  sopInstanceUID: '1.3.12.2.1107.5.1.4.73336.30000025012306181112800409289',
  frameNumber: 1
}
